diff --git a/design/11502-securitypolicy.md b/design/11502-securitypolicy.md
index e77d0fe..01eb30e 100644
--- a/design/11502-securitypolicy.md
+++ b/design/11502-securitypolicy.md
@@ -18,7 +18,7 @@
 ## Background
 
 The Go standard library includes a complete, modern [cryptography
-package](http://golang.org/pkg/crypto/). Since the initial release of Go,
+package](https://golang.org/pkg/crypto/). Since the initial release of Go,
 there has a single documented security vulnerability [CVE-2014-7189]
 (https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-7189) in the crypto
 package. This is a promising track record, but as Go usage increases the
@@ -34,9 +34,9 @@
 
 * [Python Security Policy](https://www.python.org/news/security/)
 * [Ruby on Rails Security Policy](http://rubyonrails.org/security/)
-* [Rust Security Policy](http://www.rust-lang.org/security.html)
+* [Rust Security Policy](https://www.rust-lang.org/security.html)
 * [Webkit Security Policy](https://www.webkit.org/security/)
-* [Xen Project Security Policy](http://www.xenproject.org/security-policy.html)
+* [Xen Project Security Policy](https://www.xenproject.org/security-policy.html)
 
 These policies differ in various aspects, but in general there is a common set
 of guidelines that are typically established:
@@ -57,7 +57,7 @@
 ## Proposal
 
 Among the existing security policies reviewed, the [Rust
-policy](http://www.rust-lang.org/security.html) is considered a good starting
+policy](https://www.rust-lang.org/security.html) is considered a good starting
 point. Once adopted, this policy will be hosted at
 [https://golang.org/security](https://golang.org/security). The details of the
 policy are in the Implementation section below.
diff --git a/design/12302-release-proposal.md b/design/12302-release-proposal.md
index 13344b7..711768d 100644
--- a/design/12302-release-proposal.md
+++ b/design/12302-release-proposal.md
@@ -43,7 +43,7 @@
 ### Release process
 
 This proposal recommends that repository owners adopt the
-[Semantic Versioning 2.0 standard](http://SemVer.org/spec/v2.0.0.html) (SemVer)
+[Semantic Versioning 2.0 standard](https://SemVer.org/spec/v2.0.0.html) (SemVer)
 for their numbering scheme.
 
 Source code is released by tagging (eg. `git tag`) the VCS repository with a
@@ -59,7 +59,7 @@
 v<SemVer>
 ```
 That is, the character `v`, U+0075, followed directly by a string which is
-compliant with the [Semantic Versioning 2.0 standard](http://SemVer.org/spec/v2.0.0.html).
+compliant with the [Semantic Versioning 2.0 standard](https://SemVer.org/spec/v2.0.0.html).
 
 When inspecting a repository, tags which do not fit the format described above
 must be ignored for the purpose of determining the available release versions.
diff --git a/design/15292-generics.md b/design/15292-generics.md
index 07028e7..db8bae0 100644
--- a/design/15292-generics.md
+++ b/design/15292-generics.md
@@ -16,7 +16,7 @@
 (such as types) factored out.
 It means the ability to express algorithms with minimal assumptions
 about data structures, and vice-versa
-(paraphrasing [Jazayeri, et al](http://www.dagstuhl.de/en/program/calendar/semhp/?semnr=98171)).
+(paraphrasing [Jazayeri, et al](https://www.dagstuhl.de/en/program/calendar/semhp/?semnr=98171)).
 
 ## Background
 
@@ -139,7 +139,7 @@
 wide-ranging and sometimes surprising effects, as in incomprehensible
 C++ error messages.
 
-As [Russ pointed out](http://research.swtch.com/generic), generics are
+As [Russ pointed out](https://research.swtch.com/generic), generics are
 a trade off between programmer time, compilation time, and execution
 time.
 
@@ -210,7 +210,7 @@
 * Channel operations
   * Merge N channels onto one
   * Multiplex one channel onto N
-  * The [worker-pool pattern](http://play.golang.org/p/b5XRHnxzZF)
+  * The [worker-pool pattern](https://play.golang.org/p/b5XRHnxzZF)
 * Graph algorithms, for example immediate dominator computation
 * Multi-dimensional arrays (not slices) of different lengths
 * Many of the packages in go.text could benefit from it to avoid duplicate
diff --git a/design/15292/2011-03-gen.md b/design/15292/2011-03-gen.md
index cd5a0f0..d8e9787 100644
--- a/design/15292/2011-03-gen.md
+++ b/design/15292/2011-03-gen.md
@@ -16,7 +16,7 @@
 These type parameters may then be used in other declarations,
 producing generalized types and functions.
 
-Some goals, borrowed from [Garcia et al](http://www.crest.iu.edu/publications/prints/2003/comparing_generic_programming03.pdf):
+Some goals, borrowed from [Garcia et al](https://web.archive.org/web/20170812055356/http://www.crest.iu.edu/publications/prints/2003/comparing_generic_programming03.pdf):
 
 * Do not require an explicit relationship between a definition of a generalized function and its use. The function should be callable with any type that fits the required form.
 * Permit interfaces to express relationships between types of methods, as in a comparison function that takes two parameters of the same unknown type.
diff --git a/design/15292/2013-10-gen.md b/design/15292/2013-10-gen.md
index ff6bec9..f0e7587 100644
--- a/design/15292/2013-10-gen.md
+++ b/design/15292/2013-10-gen.md
@@ -15,7 +15,7 @@
 These type parameters may then be used in other declarations,
 producing generalized types and functions.
 
-Some goals, borrowed from [Garcia et al](http://www.crest.iu.edu/publications/prints/2003/comparing_generic_programming03.pdf):
+Some goals, borrowed from [Garcia et al](https://web.archive.org/web/20170812055356/http://www.crest.iu.edu/publications/prints/2003/comparing_generic_programming03.pdf):
 
 * Do not require an explicit relationship between a definition of a generalized function and its use. The function should be callable with any suitable type.
 * Permit interfaces to express relationships between types of methods, as in a comparison function that takes two parameters of the same unknown type.
diff --git a/design/15292/2013-12-type-params.md b/design/15292/2013-12-type-params.md
index 1a58320..0eb09ad 100644
--- a/design/15292/2013-12-type-params.md
+++ b/design/15292/2013-12-type-params.md
@@ -15,7 +15,7 @@
 Types and functions that use parameters are called parameterized, as
 in "a parameterized function."
 
-Some goals, borrowed from [Garcia et al](http://www.crest.iu.edu/publications/prints/2003/comparing_generic_programming03.pdf):
+Some goals, borrowed from [Garcia et al](https://web.archive.org/web/20170812055356/http://www.crest.iu.edu/publications/prints/2003/comparing_generic_programming03.pdf):
 
 * Do not require an explicit relationship between a definition of a parameterized function and its use. The function should be callable with any suitable type.
 * Permit interfaces to express relationships between types of methods, as in a comparison method that takes two values of the same parameterized type.
diff --git a/design/15292/2016-09-compile-time-functions.md b/design/15292/2016-09-compile-time-functions.md
index 7fa9443..cb99332 100644
--- a/design/15292/2016-09-compile-time-functions.md
+++ b/design/15292/2016-09-compile-time-functions.md
@@ -166,7 +166,7 @@
 `gotype` expressions within type and method declarations are only evaluated if
 the block containing the type declaration is evaluated.
 (This is analogous to the
-[SFINAE rule in C++](http://en.cppreference.com/w/cpp/language/sfinae).)
+[SFINAE rule in C++](https://en.cppreference.com/w/cpp/language/sfinae).)
 
 A [`TypeSwitchStmt`](https://golang.org/ref/spec#TypeSwitchStmt) on an
 expression or variable of type `gotype` switches on the concrete type
diff --git a/design/18130-type-alias.md b/design/18130-type-alias.md
index 851022a..3552cc9 100644
--- a/design/18130-type-alias.md
+++ b/design/18130-type-alias.md
@@ -124,7 +124,7 @@
 
 The question of the meaning of an embedded type alias was identified as [issue 17746](https://github.com/golang/go/issues/17746), during the exploration of general aliases. The rationale for the decision above is given inline with the decision. A key property is that it matches the current handling of byte and rune, so that the language need not have two different classes of type alias (predefined vs user-defined) with different semantics.
 
-The syntax and distinction between type declarations and type alias declarations ends up being nearly identical to that of [Pascal](http://www.freepascal.org/docs-html/ref/refse19.html). The alias syntax itself is also the same as in later languages like [Rust](https://doc.rust-lang.org/book/type-aliases.html).
+The syntax and distinction between type declarations and type alias declarations ends up being nearly identical to that of [Pascal](https://www.freepascal.org/docs-html/ref/refse19.html). The alias syntax itself is also the same as in later languages like [Rust](https://doc.rust-lang.org/book/type-aliases.html).
 
 ## Compatibility
 
